#include <REGX52.H>

void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main()
{
    unsigned char i;
    unsigned char temp;
    //   1111 1111
    // DB 7654 3210
    temp = 0x01;
    while (1)
    {
        // P2 = 0x01;
        // 0000 0001  > 0000 0000
        for (i = 0; i < 8; i++)
        {
            // i=0  P2 = 0x01 << 0  P2 = 0x01 0000 0001
            // i=1  P2 = 0x01 << 1  P2 = 0x02 0000 0010
            // i=2  P2 = 0x01 << 2  P2 = 0x04 0000 0100
            // i=...
            // i=7  P2 = 0x01 << 7  P2 = 0x04 1000 0000
            P2 = 0x01 << i;
            delay_ms(200);
            // temp <<= 1;
            // 0x02 | 0000 0010  | 2
            // 0000 0010
            // 0000 0100
            // 0000 1000
            // 0001 0000
            // 0010 0000
            // 0100 0000
            // 1000 0000
            // 0000 0000
            // 0000 0000
            // 0000
            // P2 = temp;
            // delay_ms(200);
        }
    }
}
